home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
5791
/
5791.xpi
/
chrome
/
flagfox.jar
/
content
/
options.xul
< prev
next >
Wrap
Extensible Markup Language
|
2009-06-04
|
16KB
|
278 lines
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://flagfox/content/style.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://flagfox/locale/flagfox.dtd">
<window class="dialog"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
orient="vertical"
autostretch="always"
onload="init();"
title="&prefs.title;">
<keyset>
<key keycode="VK_ESCAPE" oncommand="window.close();"/>
</keyset>
<script type="application/x-javascript" src="chrome://flagfox/content/util.js"/>
<script type="application/x-javascript">
<![CDATA[
var appInfo = null;
var versionChecker = null;
var prefs = null;
function init()
{
try
{
appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
.getService(Components.interfaces.nsIXULAppInfo);
versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"]
.getService(Components.interfaces.nsIVersionComparator);
prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
resizeSideDropdown();
if (!prefs.getBoolPref("flagfox.warn.proxy") ||
!prefs.getBoolPref("flagfox.warn.updates") ||
!prefs.getBoolPref("flagfox.warn.tld"))
document.getElementById("resetMessagesLink").hidden = false; // Only show reset link if there's something to reset
loadCheck(document.getElementById("flagfox.usealticons"));
loadSelect(document.getElementById("flagfox.position.bar"));
loadSelect(document.getElementById("flagfox.position.side"));
loadSelect(document.getElementById("flagfox.middleclick"));
loadSelect(document.getElementById("flagfox.openlinksin"));
loadCheck(document.getElementById("flagfox.customlookup.enabled"));
loadField(document.getElementById("flagfox.customlookup.name"));
loadField(document.getElementById("flagfox.customlookup.url"));
disableInvalidPositions();
checkEnableCustomLookup();
}
catch (e) { Flagfox_error("Failed to init options window",e); }
}
// For each element, "id" contains the pref name and the childrens' "id"s are the pref values
// Flagfox_prefObserver should be listening so changes should apply immediately
function loadCheck(node) { node.checked = prefs.getBoolPref(node.id); }
function loadSelect(node) { node.selectedItem = document.getElementById(prefs.getCharPref(node.id)); }
function loadField(node) { node.value = Flagfox_getUCharPref(prefs,node.id); }
function applyCheck(node) { prefs.setBoolPref(node.id,node.checked); }
function applySelect(node) { prefs.setCharPref(node.id,node.selectedItem.id); }
function applyField(node) { Flagfox_setUCharPref(prefs,node.id,node.value); }
/* Can't rely on auto-sizing for side menulist/menupopup. If the "left most" string is longer than the "right most" string in this locale
then switching bars will change its size on hiding/showing "left most". Manually setting the size including any hidden items works around
this. This doesn't work in old browsers, however their address bar side menu is disabled because only the right position is available. */
function resizeSideDropdown()
{
var side = document.getElementById("flagfox.position.side");
if (versionChecker.compare(appInfo.platformVersion,"1.9") >= 0) // Gecko 1.9+
{
var sideItems = side.getElementsByTagName("menuitem");
for (var i=0; i < sideItems.length; i++)
if (side.boxObject.width < sideItems[i].boxObject.width)
side.style.minWidth = side.firstChild.style.minWidth = sideItems[i].boxObject.width + "px";
}
else // Gecko 1.8.x
{
side.setAttribute("sizetopopup","always"); // No menuitems need be hidden, so this should be fine
}
}
function resetIconSide() // Set side to default for newly chosen bar
{
switch (prefs.getCharPref("flagfox.position.bar"))
{
case "statusbar": prefs.setCharPref("flagfox.position.side","RM"); break;
case "addressbar": prefs.setCharPref("flagfox.position.side","R"); break;
}
loadSelect(document.getElementById("flagfox.position.side"));
}
function disableInvalidPositions() // Decides what menu options to disable based on what works in the detected browser
{
var inAddressBar = (prefs.getCharPref("flagfox.position.bar") == "addressbar");
var sidePosMenu = document.getElementById("flagfox.position.side");
/*
Firefox 3+:
full support
Flock 2+:
star button is not in address bar; no addressbar-RM exists, so hide it
Firefox 2, Flock 1, & SeaMonkey 2:
addressbar-L does not work and there is no star button; only address bar position is R, so disable side menu
Firefox 1.x & SeaMonkey 1.x:
not supported (see install.rdf)
*/
switch (appInfo.ID)
{
case "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}": // Firefox
if (versionChecker.compare(appInfo.version,"3") < 0)
sidePosMenu.disabled = inAddressBar;
break;
case "{a463f10c-3994-11da-9945-000d60ca027b}": // Flock
if (versionChecker.compare(appInfo.version,"2") < 0)
sidePosMenu.disabled = inAddressBar;
else
document.getElementById("RM").hidden = inAddressBar;
break;
case "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}": // SeaMonkey
sidePosMenu.disabled = inAddressBar;
break;
default:
Flagfox_error("Unsupported application: "+appInfo.ID, null);
break;
}
// There is no addressbar-LM option, so hide the LM menu entry if it's not needed (if menu is enabled; see resizeSideDropdown())
document.getElementById("LM").hidden = (inAddressBar && !sidePosMenu.disabled);
}
function checkEnableCustomLookup() // Greys out custom action section and option when disabled
{
var isDisabled = !prefs.getBoolPref("flagfox.customlookup.enabled");
// Disable custom action fields and labels
var children = document.getElementById("customActionFields").getElementsByTagName("*");
for (var i=0; i < children.length; i++)
children[i].disabled = isDisabled;
// Disable "Custom" option in middle-click dropdown
var customActionMenuItem = document.getElementById("Custom");
customActionMenuItem.disabled = isDisabled;
if (customActionMenuItem.selected && isDisabled) // and select something else if needed
{
prefs.setCharPref("flagfox.middleclick","Nothing");
loadSelect(document.getElementById("flagfox.middleclick"));
}
}
function resetIfBlank(node,text)
{
if (node.value == "")
node.value = text;
}
function resetMessagesPrefs() // Resets all "don't show this again" selections and resets messages per session limits (via Flagfox_prefObserver)
{
prefs.setBoolPref("flagfox.warn.proxy",true);
prefs.setBoolPref("flagfox.warn.updates",true);
prefs.setBoolPref("flagfox.warn.tld",true);
document.getElementById("resetMessagesLink").hidden = true;
}
function openIconsPreview()
{
window.openDialog("chrome://flagfox/content/preview.xul", "FlagfoxIconsPreview", "chrome,dialog,centerscreen,modal");
}
]]>
</script>
<groupbox>
<caption label="&prefs.appearancecaption;"/>
<hbox>
<checkbox label="&prefs.flagslabel;" id="flagfox.usealticons" oncommand="applyCheck(this);"/>
<spacer minwidth="5"/>
<image src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAApxJREFUOMulk8tr1FccxT93TKxkTCYxCpmJNo%2FRqChooYlSLAjFTSFSO1RBoi5cdJVtFVz5HwgKPla%2BsKV0mq6FWpqUhs6iG5nGMNXENI%2FRGDPJJP3N3O%2B99%2BtCSHy0Gz3LL18%2BHDjnGFXlfVTz5iFzdTQtwR1XF05WrbQ4DSihCOGmd%2BHO4NlPHr76b1518MWVkYy1crEjocmetkYa1q4BYCFyDBWecH96eQaj%2Fbnzn2XfAhy%2BnM%2FYSG4c2lYX391az9ScpbgQ4YOSqFtDKrGOwrMyAz8%2FXKaGU7kLh7MrgN5L9ztF3NChrfHU9pZ6cmMlnBP2tDWBKn%2BOzWNihl3J9fwzX%2Banu4VpNHyau3b0UQxAguvraNDUjmQDw4Xn2Mgi1UDvx0l6u1OIE2zVkp8s0b4xQdfWhpRG0gcQA7Den9jX3sxYcQkRQYLHB8ePwxNkhyewYrHOshRFjM8ucmBvG8baEysp2Mi2NtXXUJgp4bxHvKAh0HewEwWGR6bREABDcW6RrtRm1Eetqw6qFg2KU7CuSvCeEJT843n%2BrTi8dXjxOHE4K6gBvGcFAH5qbrlCc7wWozE0KMF7XiakeHEEEYJYEvEPeLJYxpgwtQqw7tZgfpK2TXEIAZxyZH87Oz9som5dLf1H9iAiOBE6WhIMDf0N6K3VJlai2yMPyl%2Bnk42pnq5N%2FJaf5PtfR%2Fn23l%2BoOFQDivLR9i2MlxZ5lC9MG7j9WpG6T3%2BX0XLlxudf7o53bqznweNZZp%2BXCS6wobGObVuaGS8tce%2BHX5YxtadyA99k36py97HrGdReTO9KJg%2FsS9O8fi2gPF2oMPj7KBP5wowxsf7cwJnsf24BoOerK2lVfxwNJwmVFjRgjCkCNw1y54%2BBc%2F8%2FpnfRC6g%2FgntZtiG5AAAAAElFTkSuQmCC" tooltiptext="&prefs.previewicons;" style="cursor: pointer;" onclick="openIconsPreview();"/>
<spacer minwidth="5" flex="1"/>
</hbox>
<separator class="thin"/>
<hbox>
<label value="&prefs.poslabel;" control="flagfox.position.bar"/>
<menulist sizetopopup="always" id="flagfox.position.bar" oncommand="applySelect(this); resetIconSide(); disableInvalidPositions();">
<menupopup>
<menuitem id="addressbar" label="&prefs.posAlabel;"/>
<menuitem id="statusbar" label="&prefs.posSlabel;"/>
</menupopup>
</menulist>
<menulist sizetopopup="none" id="flagfox.position.side" oncommand="applySelect(this);">
<menupopup>
<menuitem id="LM" label="&prefs.posLMlabel;"/>
<menuitem id="L" label="&prefs.posLlabel;"/>
<menuitem id="R" label="&prefs.posRlabel;"/>
<menuitem id="RM" label="&prefs.posRMlabel;"/>
</menupopup>
</menulist>
</hbox>
</groupbox>
<separator class="thin"/>
<groupbox>
<caption label="&prefs.clickactioncaption;"/>
<hbox>
<label value="&prefs.middleclicklabel;" control="flagfox.middleclick"/>
<menulist sizetopopup="always" id="flagfox.middleclick" oncommand="applySelect(this);">
<menupopup>
<!-- <menuitem id="Geotool" label="&menu.geotool;"/> -->
<menuitem id="Wikipedia" label="&menu.wikipedia;"/>
<menuitem id="Whois" label="&menu.whois;"/>
<menuitem id="CopyIP" label="&menu.copyip;"/>
<menuitem id="Options" label="&menu.options;"/>
<menuitem id="Nothing" label="&menu.nothing;"/>
<menuitem id="Custom" label="&menu.custom;"/>
</menupopup>
</menulist>
</hbox>
<separator class="thin"/>
<hbox>
<label value="&prefs.tabPreflabel;" control="flagfox.openlinksin"/>
<menulist sizetopopup="always" id="flagfox.openlinksin" oncommand="applySelect(this);">
<menupopup>
<menuitem id="tabFG" label="&prefs.tabFGlabel;"/>
<menuitem id="tabBG" label="&prefs.tabBGlabel;"/>
<menuitem id="winFG" label="&prefs.winFGlabel;"/>
<menuitem id="winBG" label="&prefs.winBGlabel;"/>
<menuitem id="currentTab" label="&prefs.currentTablabel;"/>
</menupopup>
</menulist>
</hbox>
<separator class="thin"/>
<vbox>
<hbox>
<checkbox label="&prefs.customaction;" id="flagfox.customlookup.enabled" oncommand="applyCheck(this); checkEnableCustomLookup();"/>
<spacer minwidth="5"/>
<image src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAAqRJREFUOMulk91PkmEYxv1b4E9oreZq1Wqd1dY46KADp%2BYn0NRytQyWs3SY0ywpNTOdCmrqnIoCbwIiiCbKlyDwYiJfysdEeOFVs%2B3qjTWcy9laB7%2BTe8%2F1265n950DIOd%2F%2BGOgIw%2FZWveBQOPcJ1XrNPXFnqIUNoqcsSQEU6Y99pkCtZPmzDrSIU%2F4EBs7NNxBKoNnOw1HII2RxWhoaCHMOVVArKU4cmsytRnZh%2FnbLqRzfojGnKgfWUcXsQGDIwpXiMInlT%2FVRWxxTghk5gRrcjUe3AjTWHDGUMuEOgkP%2FDEavlgaY4sB1EitUK6GYPcl0DpJBpvHXaysYHQpKlzzp7DiiUM4aMfjHjPSB0cMP35zhNpBC2r6TZi3R6Bdi6BOahVmBX1zIdLFdO0mNlHdY0JV9wr80TSmlgNQ27ZBMwK1LQhuuw6tUw5Yvbt40m0ks4IOhZd2B5MQSiyo%2FGgEr9PAPNZj2ujDLnWAnV0avbMulLZpUflBD4dvDzyxns4KWsZdtCuQxNMBC7gdepS%2F16HsnQ5J%2Bju2IhT4Yi2KWlS4z8AXa2D3x5HfpD4WvJDaSNtWHGKZC7x2A8rE8yh5O4fi1%2BoMha8IFDYqUNAoR710GUZPBHfr5McVmD5ChTEAvSOCyg5DNhhL7COyRyNPNJOhUCQDseqDhKlzq2bi%2BBP54gVW%2BZv54JIzAuWKH9w2DQqalGgbN2X4Fc5vmMCwxg2NJYCb1WPB6w9HWScWKU80y7nXQKR09m2orUG8lCyhpFmOosZpPO%2FVQ2n0QmX242rF59TlB0OcU1f5jlDGuf1sMtRHrOOrOwyLN5Zh0bmDLpkNuTxp6GK5hHPmMd14NMq%2BVjUiuFIxTF7iD1K5XCl1oWyAPF%2FaLzhX3Mf%2B6zX%2BKz8B168For1NvcQAAAAASUVORK5CYII%3D" tooltiptext="&prefs.customactionsyntaxhelp;" style="cursor: pointer;" popup="customActionSyntaxPopup"/>
<popup id="customActionSyntaxPopup" style="padding: 4px; -moz-appearance: tooltip;" onclick="this.hidePopup();">
<text value="&prefs.customactionsyntaxhelphead;"/>
<text value="{domainName} - &prefs.customactionsyntaxhelpbody1;"/>
<text value="{IPaddress} - &prefs.customactionsyntaxhelpbody2;"/>
<text value="{countryName} - &prefs.customactionsyntaxhelpbody3;"/>
<text value="{countryCode} - &prefs.customactionsyntaxhelpbody4;"/>
</popup>
</hbox>
<vbox id="customActionFields" style="-moz-padding-start: 5px;">
<hbox>
<label value="&prefs.customactionname;" control="flagfox.customlookup.name"/>
<textbox flex="1" id="flagfox.customlookup.name" maxlength="20" onchange="resetIfBlank(this,'&menu.custom;'); applyField(this);"/>
</hbox>
<hbox>
<label value="&prefs.customactionurl;" control="flagfox.customlookup.url"/>
<textbox flex="1" id="flagfox.customlookup.url" maxlength="1000" onchange="applyField(this);"/>
</hbox>
</vbox>
</vbox>
</groupbox>
<hbox>
<spacer flex="1"/>
<hbox id="resetMessagesLink" hidden="true" class="link" onclick="resetMessagesPrefs();">
<image src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAAZ5JREFUOMuNkt0rBFEYh%2FdfXBe40CKSIp9ZdpUs7VIiNiUb0thoYrE1JdbHWufChSj5mF27a%2BRGynfZ48K8fmdihoY1p56aOTPn957znNflbpVLhuO5ze6FLPPPg2iGeWdPWcfMCWufPmZtkSPWMnnIfBHGxL9E5PqOK7iUS4XXb5gTmkd3U7YAUdkpdUNJZgvwRy%2FEpCNqBrbsAb65tPFRSWUyU4mr18HVSz6wAmJ5HlrM8n45zQMLZ7w3esKbJg44XGhw4bECJNUIGFO0wnTylhdjWLnmcKHBRd4MaAzvGwGi8n90SuccLjS40MwAbKevfmSPdUkqf3x5A5w%2FPAsKJveCpwJ%2FeX17xCINLqyArwe4EJNafEe9G1PyOioR%2BoLQF4RjEnqD0BeEviD0BcEFoXiDFSCpRkAoliOc0xFw8W4GwIURICo7BS6s%2B8R2xuFCQ1%2BQ0wEXP5vi08WfC3SBLtCN96rgxi8BEFZsfIWI4Qms2QPgwvER3G2yPQAuZLgwBNUOblN1MEGV%2FetU0aNQeXecynzLVOqNiSsUyB%2F6FSN74CJXYgAAAABJRU5ErkJggg%3D%3D"/>
<spacer minwidth="5"/>
<text value="&prefs.resetmessageslabel;"/>
</hbox>
<spacer flex="5"/>
<button label="&close;" oncommand="window.close();" default="true"/>
</hbox>
</window>